package com.gcxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gcxy.core.R;
import com.gcxy.dto.teacher.AddTeacherInfoDTO;
import com.gcxy.dto.teacher.TeacherPageDTO;
import com.gcxy.dto.teacher.UpdateTeacherDTO;
import com.gcxy.dto.teacher.UploadSignDTO;
import com.gcxy.entity.User;
import com.gcxy.vo.teacher.TeacherAllListVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.FileInputStream;
import java.util.List;

/**
 * Copyright (C), 2024-2024, BUG闭退！
 * Author: Huang先森
 * Date: 2024/8/2 10:21
 * FileName: TeacherService
 * Description:
 */
public interface TeacherService extends IService<User> {

    R<?> insertTeacher(AddTeacherInfoDTO addTeacherInfoDTO);

    R<?> updateTeacher(UpdateTeacherDTO updateTeacherDTO);

    R<?> deleteTeacher(Integer id);

    R<?> getTeacherPageByCondition(TeacherPageDTO teacherPageDTO);

    R<List<TeacherAllListVO>> getAllTeacherName(Integer agencyId);

    /**
     * 获取本学期内当前组织下的名誉教师信息
     * @param semesterId
     * @param agencyId
     * @return
     */
    List<User> getHonoraryTeacher(Integer semesterId, Integer agencyId);

    /**
     * 根据教师名称获取本学期内当前组织下的名誉教师信息
     * @param semesterId
     * @param agencyId
     * @param honoraryTeacherName
     * @return
     */
    List<User> getHonoraryTeacher(Integer semesterId, Integer agencyId, String honoraryTeacherName);

    R<?> uploadTeacherSign(UploadSignDTO uploadSignDTO);

    R<?> getSign();

    /**
     * 上传签名
     * @param file
     * @return
     */
    R<?> uploadSignature(MultipartFile file);

    R<?> deleteSignature();
}
